#ifndef __TASK_H
#define __TASK_H

#include "stm32f4xx_hal.h"
#include "stdint.h"

/**
 * @brief 定时运行任务的结构体
 */
typedef struct
{
    uint32_t period;    /*! 任务运行周期   */
    void (*task)(void); /*! 任务函数指针 */
    int32_t count;      /*! 任务运行次数,-1为无数次 */
    uint32_t TargetTick;
} Task_t;

void TaskInit(Task_t *srctask, void (*task_f)(void), uint32_t period, int32_t count);

void RunTask(Task_t *srctask);

#endif